package com.sywb.chuangyebao.bean;

import com.sywb.chuangyebao.R;
import com.sywb.chuangyebao.view.NewsDetailActivity;
import com.sywb.chuangyebao.view.TrainMediaDetailActivity;
import com.sywb.chuangyebao.view.VideoDetailActivity;

import java.io.Serializable;

/**
 * 当type=comment时表示评论；type=comment_reply时表示回复，此时评论数据取coment字段
 * Created by duxl on 2018/5/4.
 */

public class MyComment implements Serializable {

    /** 如果type=comment则是评论的id，如果type=comment_reply则是回复的id */
    public int id;

    /** 评论内容 */
    public String content;

    /** 评论时间 */
    public int date_time;

    /** 类型：question问题 article文章 video视频 audio音频 special专栏 */
    public String topic_type;

    /** 原文id */
    public int topic_id;

    /** 评论目标内容(原文) */
    public Topic topic;

    /** 点赞数量 */
    public int thumb_count;

    /** 当前用户是否点赞：true=是 false=否 */
    public boolean is_thumb;

    /** 接口返回字段，逻辑处理时，建议使用{@link #getType() getType()}<br/>
     * 等于comment_reply表示该条数据是回复，原评论取comment里面的数据；等于comment表示该条数据是评论 */
    public String type;

    /** 评论数据：当type=comment_reply时有效 */
    public MyComment comment;

    /** 本条数据是评论返回0，是回复返回1，其它返回-1 */
    public int getType() {
        if("comment".equals(type)) {
            return 0;
        } else if("comment_reply".equals(type)) {
            return 1;
        }
        return -1;
    }

    /**
     * 获取评论数据
     * @return
     */
    public MyComment getCommentData() {
        if(getType() == 0) {
            // 本条就是评论数据，直接返回
            return this;
        } else if(getType() == 1) {
            if(comment != null) {
                // 当type=comment_reply时，表示回复数据，评论使用comment，但外层的id，是否点赞，点赞数量都是评论的
                comment.is_thumb = this.is_thumb;
                comment.thumb_count = this.thumb_count;
                comment.topic = this.topic;
                comment.topic_id = this.topic_id;
                comment.topic_type = this.topic_type;
                return comment;
            }
        }
        return null;
    }

    public static class Topic implements Serializable {
        public String title;
        public String pic;
        public String url;
        /** 类型：question问题 article文章 video视频 audio音频 special专栏<br/>
         * 逻辑处理建议使用{@link #getType() getType()}方法
         * */
        public String topic_type;
        /**类目：1普通视频、2培训视频<br/>
         * 逻辑处理建议使用{@link #getType() getType()}方法
         * */
        public int category_id;
        public int topic_id;
        public String uid;

        /**
         * 获取原文类型：-1其它、0文章、1普通视频、2培训视频、3音频、4专栏
         * @return
         */
        public int getType() {
            if ("article".equals(topic_type)) {
                return 0; // 文章

            } else if ("video".equals(topic_type)) {
                if (category_id == 1) {
                    return 1; // 普通视频
                } else if (category_id == 2) {
                    return 2; // 培训视频
                }
            } else if ("audio".equals(topic_type)) {
                return 3; // 音频

            } else if ("special".equals(topic_type)) {
                return 4; // 专栏
            }
            return -1;
        }
    }

    /**
     * 将用户信息对象转换成所有者信息对象
     * @param userInfo
     * @return
     */
    public static NewsOwner convertUserInfoToNewsOwner(UserInfo userInfo) {
        if(userInfo == null) {
            return null;
        }
        NewsOwner newsOwner = new NewsOwner();
        newsOwner.uid = Integer.parseInt(userInfo.uid);
        newsOwner.nickname = userInfo.nickname;
        newsOwner.name = userInfo.username;
        newsOwner.avatar_s = userInfo.avatar_s;
        newsOwner.avatar_l = userInfo.avatar_l;
        newsOwner.avatar_hd = userInfo.avatar_hd;
        newsOwner.brief_intro = userInfo.brief_intro;
        newsOwner.user_role = userInfo.user_role;
        newsOwner.user_type = userInfo.user_type;

        return newsOwner;
    }
}
